home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs05.d81 / filemv.prg (.txt) < prev    next >
Commodore BASIC  |  2009-10-10  |  5KB  |  196 lines

  1. 5 POKE56,160:CLR:OPEN15,8,15
  2. 6 PRINT"[147]"
  3. 7 PRINT"PRESS D FOR DIRECTORY."
  4. 8 PRINT"PRESS T TO CHANGE FILETYPE."
  5. 9 PRINT"PRESS F TO MAKE FILE FIRST IN DIRECTORY."
  6. 10 PRINT"PRESS U TO UNSCRATCH FILE."
  7. 11 PRINT"PRESS S TO DELETE FILE."
  8. 12 PRINT"PRESS R TO RENAME FILE."
  9. 13 PRINT"PRESS C TO COPY FILE."
  10. 15 PRINT"PRESS E TO EXIT."
  11. 16 GETA$:IFA$="D"THENGOSUB200:GOTO300
  12. 18 IFA$="F"THEN600
  13. 19 IFA$="S"THEN1000
  14. 20 IFA$="C"THEN2000
  15. 21 IFA$="E"THENCLOSE15:END
  16. 22 IFA$="U"THEN700
  17. 23 IFA$="T"THEN30
  18. 24 IFA$="R"THEN3000
  19. 25 GOTO16
  20. 30 F$="":INPUT"[147]FILENAME";F$
  21. 31 IFF$=""THEN30
  22. 32 OPEN8,8,8,"0:"+F$
  23. 35 GOSUB900:IFVTHEN40
  24. 37 GOTO7
  25. 40 PRINT#15,"M-R";CHR$(144);CHR$(2);CHR$(5)
  26. 45 GET#15,A$:S=ASC(A$+CHR$(0)):GET#15,A$:GET#15,A$:GET#15,A$
  27. 50 GET#15,A$:P=ASC(A$+CHR$(0)):T=18
  28. 55 CLOSE8:OPEN8,8,8,"#"
  29. 60 PRINT#15,"U1";8;0;T;S
  30. 65 PRINT#15,"B-P";8;P
  31. 70 GET#8,A$:B=ASC(A$+CHR$(0))
  32. 75 X=0:A=BAND7:IFA=1THENA$="SEQ"
  33. 85 IFA=2THENA$="PRG"
  34. 90 IFA=3THENA$="USR"
  35. 95 IFA=4THENA$="REL"
  36. 100 PRINT:PRINTA$;" FILE.":X=0:IFBAND128THEN105
  37. 101 Z$="":PRINT"IMPROPERLY CLOSED FILE.":INPUT"VALIDATE (Y/N)";Z$
  38. 102 IFZ$="Y"THENPRINT#15,"V0:":CLOSE8:GOTO6
  39. 103 IFZ$="N"THENCLOSE8:GOTO6
  40. 104 GOTO101
  41. 105 IF(BAND64)=0THEN110
  42. 106 Z$="":X=64:INPUT"LOCKED FILE. UNLOCK (Y/N)";Z$
  43. 107 IFZ$="Y"THENX=0:GOTO110
  44. 108 IFZ$="N"THEN110
  45. 109 GOTO106
  46. 110 IFA=4THENPRINT"FILETYPE CAN'T BE CHANGED.":GOTO150
  47. 115 IFA<>1THENPRINT"PRESS S TO CHANGE TO SEQ FILE."
  48. 120 IFA<>2THENPRINT"PRESS P TO CHANGE TO PRG FILE."
  49. 125 IFA<>3THENPRINT"PRESS U TO CHANGE TO USR FILE."
  50. 127 PRINT"PRESS RETURN FOR NO CHANGE."
  51. 130 GETZ$:IFZ$="S"THENW=1:GOTO150
  52. 132 IFZ$=CHR$(13)THENW=A:GOTO150
  53. 135 IFZ$="P"THENW=2:GOTO150
  54. 140 IFZ$="U"THENW=3:GOTO150
  55. 145 GOTO130
  56. 150 PRINT"PRESS L TO LOCK FILE."
  57. 152 PRINT"PRESS RETURN, OTHERWISE."
  58. 155 GETZ$:IFZ$="L"THENX=64:GOTO165
  59. 157 IFZ$=CHR$(13)THEN165
  60. 160 GOTO155
  61. 165 Y=X+W+128:PRINT#15,"B-P";8;P
  62. 170 PRINT#8,CHR$(Y);
  63. 175 PRINT#15,"U2";8;0;T;S
  64. 180 CLOSE8:GOTO6
  65. 200 POKE183,1:POKE187,2:POKE188,0
  66. 205 POKE2,36:POKE186,8:POKE185,0
  67. 210 POKE780,0:POKE781,0:POKE782,192:SYS65493:RETURN
  68. 300 PRINT"[147]":N=0:M=1:A=49154
  69. 302 N=N+1:IFN<>16THEN307
  70. 304 N=0:M=0:PRINT"PRESS SPACE BAR TO CONTINUE."
  71. 305 GETA$:IFA$=" "THENPRINT:PRINT:GOTO307
  72. 306 GOTO305
  73. 307 PRINTPEEK(A)+256*PEEK(A+1);
  74. 310 A=A+1
  75. 315 A=A+1:IFPEEK(A)THENPRINTCHR$(PEEK(A));:GOTO315
  76. 320 PRINT:A=A+3:IFPEEK(A-1)THEN302
  77. 325 PRINT"PRESS RETURN FOR MAIN MENU."
  78. 326 IFMTHEN330
  79. 327 PRINT"PRESS SPACE BAR FOR REPEAT."
  80. 330 GETA$:IFA$=CHR$(13)THEN340
  81. 332 IFA$=" "THEN300
  82. 335 GOTO330
  83. 340 GOTO6
  84. 400 GOSUB200:PRINT"CALCULATING # OF ACTIVE FILE BLOCKS.":A=49183:L=0:H=0
  85. 405 A=A+1:P=PEEK(A):L=P+L:A=A+1:Q=PEEK(A):H=Q+H
  86. 410 A=A+1:IFPEEK(A)THEN410
  87. 415 IFPEEK(A+2)=0THEN425
  88. 420 A=A+2:GOTO405
  89. 425 G=L+256*H:PRINT:PRINTP+256*Q;"FREE BLOCKS."
  90. 430 PRINT:PRINTG-P-256*Q;"ACTIVE FILE BLOCKS."
  91. 435 RETURN
  92. 500 PRINT"FILE IS NOT RECOVERABLE."
  93. 505 PRINT"IT WAS OVERWRITTEN BY SUBSEQUENT FILE."
  94. 525 PRINT"SCRATCHING FILE..."
  95. 530 PRINT#15,U$:PRINT"VALIDATING AGAIN..."
  96. 535 PRINT#15,"V0:":CLOSE8:GOTO7
  97. 600 F$="":PRINT"[147]FILENAME TO BE MOVED"
  98. 602 INPUT"TO TOP OF DIRECTORY";F$
  99. 603 IFF$=""THEN600
  100. 605 OPEN8,8,8,"0:"+F$
  101. 610 GOSUB900:IFVTHEN620
  102. 615 GOTO7
  103. 620 IFA=60THEN101
  104. 625 PRINT#15,"M-R";CHR$(144);CHR$(2);CHR$(5)
  105. 630 GET#15,A$:S=ASC(A$+CHR$(0)):GET#15,A$:GET#15,A$:GET#15,A$
  106. 635 GET#15,A$:P=ASC(A$+CHR$(0)):T=18
  107. 640 IFS=1ANDP=2THENPRINT"THAT FILE IS ALREADY AT TOP":CLOSE8:GOTO7
  108. 645 CLOSE8:OPEN8,8,8,"#"
  109. 650 PRINT#15,"U1";8;0;T;S
  110. 655 PRINT#15,"B-P";8;P
  111. 660 P$="":FORI=0TO29:GET#8,A$:A=ASC(A$+CHR$(0)):P$=P$+CHR$(A):NEXT
  112. 665 PRINT#15,"U1";8;0;T;1
  113. 670 PRINT#15,"B-P";8;2
  114. 675 Q$="":FORI=0TO29:GET#8,A$:A=ASC(A$+CHR$(0)):Q$=Q$+CHR$(A):NEXT
  115. 677 PRINT#15,"B-P";8;2
  116. 678 PRINT#8,P$;
  117. 680 PRINT#15,"U2";8;0;T;1
  118. 681 PRINT#15,"U1";8;0;T;S
  119. 682 PRINT#15,"B-P";8;P
  120. 683 PRINT#8,Q$;
  121. 685 PRINT#15,"U2";8;0;T;S
  122. 690 CLOSE8:GOTO6
  123. 700 OPEN8,8,8,"#":F=0:FF=0:J=1
  124. 705 SS=1
  125. 710 P=2:IFF=1THEN770
  126. 715 PRINT#15,"U1";8;0;18;SS
  127. 717 GET#8,A$:IFASC(A$+CHR$(0))=0THENF=1
  128. 718 GET#8,A$:S=ASC(A$+CHR$(0))
  129. 720 GET#8,A$:B=ASC(A$+CHR$(0))
  130. 722 GET#8,A$:IFASC(A$+CHR$(0))=0THEN710
  131. 725 IFBTHEN750
  132. 730 J=0:GOSUB800
  133. 735 IFFFTHENGOSUB400:IFG=664THENPRINT"FILE RECOVERED.":CLOSE8:GOTO7
  134. 740 IFFFTHEN500
  135. 750 IFP=226THENSS=S:GOTO710
  136. 755 P=P+32:PRINT#15,"B-P";8;P
  137. 760 GOTO720
  138. 770 CLOSE8:IFJTHENPRINT"[147]NO SCRATCHED FILES":GOTO7
  139. 780 GOTO6
  140. 800 PRINT"[147]"
  141. 805 PRINT#15,"B-P";8;P+3
  142. 810 FORI=1TO16:GET#8,A$:PRINTA$;:NEXT:PRINT,"DELETED FILE"
  143. 820 N$="":INPUT"UNSCRATCH (Y/N)";N$
  144. 825 IFN$="N"THENRETURN
  145. 830 IFN$="Y"THEN840
  146. 835 GOTO820
  147. 840 PRINT"PRESS P FOR PRG"
  148. 845 PRINT"PRESS S FOR SEQ"
  149. 850 PRINT"PRESS U FOR USR"
  150. 855 GETN$:IFN$="P"THENB=130:GOTO875
  151. 860 IFN$="U"THENB=131:GOTO875
  152. 865 IFN$="S"THENB=129:GOTO875
  153. 870 GOTO855
  154. 875 FF=1:PRINT#15,"B-P";8;P
  155. 880 PRINT#8,CHR$(B);
  156. 882 PRINT#15,"B-P";8;P+3
  157. 885 U$="S0:":FORI=0TO15:GET#8,A$:IFA$="[160]"THENI=15:GOTO888
  158. 887 A=ASC(A$+CHR$(0)):U$=U$+CHR$(A)
  159. 888 NEXT
  160. 890 PRINT#15,"U2";8;0;18;SS
  161. 892 PRINT"VALIDATING..."
  162. 895 PRINT#15,"V0:":RETURN
  163. 900 V=0:INPUT#15,A,B$,C,D
  164. 910 IFA<20ORA=60THENV=1:RETURN
  165. 920 PRINT:PRINTA,B$:PRINT:PRINTC,D:CLOSE8:RETURN
  166. 1000 F$="":INPUT"[147]FILENAME";F$
  167. 1010 IFF$=""THEN1000
  168. 1020 OPEN8,8,8,"0:"+F$
  169. 1030 GOSUB900:IFVTHEN1050
  170. 1040 GOTO7
  171. 1050 IFA=60THEN101
  172. 1060 CLOSE8:PRINT#15,"S0:";F$
  173. 1070 GOTO6
  174. 2000 F$="":INPUT"[147]FILENAME OF ORIGINAL";F$
  175. 2010 IFF$=""THEN2000
  176. 2015 OPEN8,8,8,"0:"+F$
  177. 2020 GOSUB900:IFVTHEN2030
  178. 2025 GOTO7
  179. 2030 IFA=60THEN101
  180. 2035 CLOSE8:FF$="":INPUT"FILENAME OF COPY TO BE MADE";FF$
  181. 2040 IFFF$=""THEN2035
  182. 2045 PRINT#15,"C0:";FF$;"=";F$
  183. 2050 GOSUB900:IFVTHEN6
  184. 2055 GOTO7
  185. 3000 F$="":INPUT"[147]OLD FILENAME";F$
  186. 3005 IFF$=""THEN3000
  187. 3010 OPEN8,8,8,"0:"+F$
  188. 3015 GOSUB900:IFVTHEN3030
  189. 3020 GOTO7
  190. 3030 IFA=60THEN101
  191. 3035 CLOSE8:FF$="":INPUT"NEW FILENAME";FF$
  192. 3040 IFFF$=""THEN3035
  193. 3045 PRINT#15,"R0:";FF$;"=";F$
  194. 3050 GOSUB900:IFVTHEN6
  195. 3055 GOTO7
  196.